package model_test

import unq.model.Estrategia
import unq.model.EstrategiaBanco
import unq.model.Villano
import unq.model.Caso
import unq.model.Pais
import org.junit.Test
import static org.junit.Assert.assertEquals;
import java.util.List
import java.util.ArrayList
import unq.model.EstrategiaBiblioteca
import unq.model.EstrategiaClub
import unq.model.EstrategiaEmbajada

class TestEstrategia {

    var List<String> senias = new ArrayList(#["rubio", "alto"])
    var List<String> hobbies = new ArrayList(#["correr", "dormir"])
    
	var List<String> carac1 = new ArrayList(#["grande", "bandera dos colores"])
	var List<String> carac2 = new ArrayList(#["chico", "bandera a rayas"])
	var List<Pais> plan = new ArrayList(#[new Pais("arg", carac1), new Pais("uru", carac2)])
	
    var Caso caso = new Caso(plan)

	var Villano villano = new Villano(caso,senias, hobbies)
		
	var EstrategiaBanco estBanco = new EstrategiaBanco
	var EstrategiaBiblioteca estBiblio = new EstrategiaBiblioteca
	var EstrategiaClub estClub = new EstrategiaClub
	var EstrategiaEmbajada estEmbaj = new EstrategiaEmbajada
	
	
	
	@Test
	def TestBanco(){
		//estBanco.darInformacion(villano)
		assertEquals(estBanco.darInformacion(villano).size, 2)
		assertEquals(estBanco.darInformacion(villano).get(0), "grande")
		assertEquals(estBanco.darInformacion(villano).get(1), "rubio")
	}
	
	
	@Test
	def TestBiblioteca(){
		//estBiblio.darInformacion(villano)
		assertEquals(estBiblio.darInformacion(villano).size, 2)
		assertEquals(estBiblio.darInformacion(villano).get(0), "rubio")
		assertEquals(estBiblio.darInformacion(villano).get(1), "correr")
	}
	
	@Test
	def TestClub(){
		//estClub.darInformacion(villano)
		assertEquals(estClub.darInformacion(villano).size, 3)
		assertEquals(estClub.darInformacion(villano).get(0), "rubio")
    	assertEquals(estClub.darInformacion(villano).get(1), "alto")
		assertEquals(estClub.darInformacion(villano).get(2), "correr")
	}
	
	@Test
	def TestEmbajada(){
		//estEmbaj.darInformacion(villano)
		assertEquals(estEmbaj.darInformacion(villano).size, 2)
	}
	
}